第4章代码练习:存储引擎、字符集、校对规则与数据库操作

这一页用于单次上机练习。重点不是死记命令,而是边执行边观察:看见了什么、默认值是什么、修改前后发生了什么变化

完成本次练习后,应能掌握
  • 查看 MySQL 支持的存储引擎、字符集与校对规则
  • 理解字符集与校对规则的区别,以及不同层级的默认设置
  • 完成数据库的创建、查看、修改与删除操作
8 组
分步代码练习
1 套
连续练习版命令
4 类
观察重点
单页
适合直接上机使用
💻 本次练习以观察型命令和基础操作命令为主。前半部分重点是“查看”,后半部分重点是“创建、修改、删除”。每做完一条命令,都要回到结果区核对本页给出的观察点。

练习前先统一三点

环境提醒
建议在 MySQL 8.x 环境下完成本次练习。不同版本下,某些默认校对规则名称可能略有差异。
学习方式
本页练习更适合“执行一条,看一条,记一条”。不要连续一口气把所有代码敲完再回头看结果。
观察类型重点看什么
默认值当前系统默认用了什么
是否支持某引擎、字符集、校对规则是否存在
属性变化修改前后是否真的发生变化
操作结果创建成功、删除成功、对象是否还存在
1 查看 MySQL 支持的存储引擎
目的:认识存储引擎 重点:默认引擎与 Support 列
SQL
SHOW ENGINES;

观察点

  • 默认存储引擎是谁
  • InnoDB、MyISAM、MEMORY 是否存在
  • Support 列显示的是 YES、DEFAULT 还是其他值
2 查看当前默认存储引擎
目的:确认当前默认引擎 重点:default_storage_engine
SQL
SHOW VARIABLES LIKE '%storage_engine%';

观察点

  • default_storage_engine 的值是什么
  • 一般默认是否为 InnoDB
3 查看 MySQL 支持的字符集
目的:知道系统支持哪些字符集 重点:utf8mb4、默认校对规则、最大长度
SQL
SHOW CHARACTER SET;

也可以进一步查看信息模式表中的字符集数据。

SQL
USE information_schema; SELECT * FROM CHARACTER_SETS;

观察点

  • 是否有 utf8mb4
  • 默认校对规则是什么
  • 每种字符集的最大长度是多少
4 查看校对规则(Collation)
目的:理解字符集与校对规则的区别 重点:同一字符集可对应多个校对规则
SQL
SHOW COLLATION;
SQL
SHOW COLLATION WHERE Charset = 'utf8mb4';
SQL
USE information_schema; SELECT * FROM COLLATIONS WHERE CHARACTER_SET_NAME = 'utf8mb4';

观察点

  • 同一个字符集是否对应多个校对规则
  • cicsbin 三类后缀有什么差别
5 查看各级别字符集和校对规则设置
目的:知道不同层级的默认设置 重点:server、database、connection
SQL
SHOW VARIABLES LIKE 'character%'; SHOW VARIABLES LIKE 'collation%';
SQL
SHOW VARIABLES LIKE 'character_set_server';

观察点

  • character_set_server
  • character_set_database
  • character_set_connection
  • collation_server
6 创建数据库
目的:掌握 CREATE DATABASE 重点:显式指定字符集和校对规则
SQL
CREATE DATABASE IF NOT EXISTS student_lab DEFAULT CHARACTER SET utf8mb4 DEFAULT COLLATE utf8mb4_0900_ai_ci;

观察点

  • 数据库是否创建成功
  • 为什么这里建议指定 utf8mb4
  • 为什么要显式指定默认校对规则
7 查看并修改数据库属性
目的:掌握查看与修改数据库默认属性 重点:修改前后对比
SQL
SHOW CREATE DATABASE student_lab;
SQL
ALTER DATABASE student_lab DEFAULT CHARACTER SET gbk DEFAULT COLLATE gbk_chinese_ci;
SQL
SHOW CREATE DATABASE student_lab;

观察点

  • 修改前后字符集和校对规则是否发生变化
  • ALTER DATABASE 修改的是数据库默认属性,而不是已有表的数据内容
8 删除数据库
目的:掌握 DROP DATABASE 重点:删除前要确认对象
SQL
DROP DATABASE IF EXISTS student_lab;

观察点

  • 删除后数据库是否消失
  • 为什么删除数据库前必须谨慎确认

连续练习版

适用方式
这一组适合在前面分步练习完成后,作为连续敲写与整体回顾使用。
从头到尾连着执行一遍
SQL
-- 1. 查看存储引擎 SHOW ENGINES; -- 2. 查看默认存储引擎 SHOW VARIABLES LIKE '%storage_engine%'; -- 3. 查看字符集 SHOW CHARACTER SET; -- 4. 查看校对规则 SHOW COLLATION; -- 5. 查看 utf8mb4 的校对规则 SHOW COLLATION WHERE Charset = 'utf8mb4'; -- 6. 查看字符集和校对规则变量 SHOW VARIABLES LIKE 'character%'; SHOW VARIABLES LIKE 'collation%'; -- 7. 创建数据库 CREATE DATABASE IF NOT EXISTS student_lab DEFAULT CHARACTER SET utf8mb4 DEFAULT COLLATE utf8mb4_0900_ai_ci; -- 8. 查看数据库创建信息 SHOW CREATE DATABASE student_lab; -- 9. 修改数据库 ALTER DATABASE student_lab DEFAULT CHARACTER SET gbk DEFAULT COLLATE gbk_chinese_ci; -- 10. 再次查看数据库创建信息 SHOW CREATE DATABASE student_lab; -- 11. 删除数据库 DROP DATABASE IF EXISTS student_lab;